// search 小仓库
import { reqGetSearchInfo } from "@/api"

// state：仓库存储数据的地方
const state = {
  searchList: {},
}
// mutations:修改 state 唯一手段
const mutations = {
  GETSEARCHLIST(state,searchList){
    state.searchList =searchList
  }
}
// action：处理 action，可以书写自己业务逻辑，也可以处理异步
const actions = {
  // 获取 search 模块数据
  async getSearchList ({commit}, params = {}){
    // 当前这个reqGetSearchInfo这个函数在调用获取服务器数据的时候,至少传递一个参数(空对象)
    // params形参:是当用户派发action的时候,第二个参数传递过来的,至少是一个空对象
    let result =await reqGetSearchInfo(params);
    if(result.code == 200){
      commit("GETSEARCHLIST",result.data);
    }
  },
}
// getters: 理解为计算属性，用于简化仓库数据，让组件获取仓库数据更加方便
// 可以把我们将来组件当中需要用数据简化一下（将来组件在获取数据时候就方便）
const getters = {
  // 当前形参 state，当前仓库中的 state，并非大仓库中那个 state 
  //计算新的属性:state,当前小仓库的数据
  goodsList(state) {
      return state.searchList.goodsList || [];
  },
  //品牌的数据
  trademarkList(state) {
      return state.searchList.trademarkList;
  },
  //商品属性
  attrsList(state) {
      return state.searchList.attrsList; 
  }
} 

// 对外暴露 Store 一个对象
export default {
  state,
  mutations,
  actions,
  getters
}